package Demo.Java窗口;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class ChatFrame extends JFrame {

    private JList list;

    private JTextArea area;
    //创建一个输入框
    private JTextField txtInput;
    //按钮
    private JButton bthSend;

    private JPanel p1,p2;
    //创建一个聊天框的方法
    public ChatFrame(){
        //设置窗口标题
        this.setTitle("聊天窗口");
        //设置窗口大小和位置
        this.setBounds(400,100,500,300);
        //设置窗口关闭
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //显示窗口
        this.setVisible(true);
        //new一个列表
        list = new JList();
        //设置list的宽
        list.setFixedCellWidth(100);
       //设置list的高
        list.setFixedCellHeight(30);

        DefaultListModel listModel = new DefaultListModel();
       //创建列表元素
        listModel.addElement("王保淞");
        listModel.addElement("保淞");
        listModel.addElement("淞");
       //把列表元素添加进列表里
        list.setModel(listModel);

        //右边大容器
        //new一个名为p1的面板
        p1 = new JPanel();
        //设置边框布局 
        p1.setLayout(new BorderLayout());
        //把大输入框放在正中
        area = new JTextArea();
        p1.add(area,BorderLayout.CENTER);

        //小的布局容器
        p2 = new JPanel();
        //JPanel默认是流式布局，所以必须给输入框长度
       //文本
        txtInput = new JTextField(20);
        //按钮
        bthSend = new JButton("发送");
        //把按钮和文本框放进p2这个容器里
        p2.add(txtInput);
        p2.add(bthSend);
        //给按钮设置一个动态监听
        bthSend.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
            //创建一个String类型的txt文本  让按钮可以把获取的值赋值在txt上
            String txt = txtInput.getText();
                System.out.println("txt="+txt);
                //发送以后避免覆盖txt值 所以保存上一个txt值并且添加新的txt值 并且换行
                area.setText(area.getText()+txt+"\n");
                //清空
                txtInput.setText("");
            }
        });
         //把p2放进p1里的下面
        p1.add(p2,BorderLayout.SOUTH);

        this.add(list,BorderLayout.WEST);
        this.add(p1);



    }

    public static void main(String[] args) {
        ChatFrame a=new ChatFrame();
    }
}
